package com.jprocms.module.cms.framework.mybatisplus;

import com.jpro.framework.common.util.json.JsonUtils;
import com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler;
import com.fasterxml.jackson.core.type.TypeReference;

import java.util.List;

/**
 * 参考 {@link com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler} 实现
 * 对象集合类型处理
 *
 * @author jprocms
 */
public class JsonObjectListTypeHandler extends AbstractJsonTypeHandler<Object> {

    private static final TypeReference<List<Object>> TYPE_REFERENCE = new TypeReference<List<Object>>() {
    };

    public JsonObjectListTypeHandler(Class<?> type) {
        super(type);
    }

    @Override
    public Object parse(String json) {
        return JsonUtils.parseObject(json, TYPE_REFERENCE);
    }

    @Override
    public String toJson(Object obj) {
        return JsonUtils.toJsonString(obj);
    }

}
